<?php

//状态模式
//当一个对象的内在状态改变时，允许改变其行为，这个对象看起来像是改变了其类。

//状态模式解决的问题是，一个对象的状态变更逻辑过于复杂时（一大片的if & else），把状态判断逻辑转移到表示不同状态的一系列类中。

require '../autoload.php';

$work = new Work();
$work->setState(new StateMorning());

$work->setHour(10);
$work->writeProgram();

$work->setHour(18);
$work->writeProgram();

$work->setHour(20);
$work->writeProgram();

// 设置工作已完成
$work->setWorkFinish();

$work->setHour(21);
$work->writeProgram();

